// 文件类型工具类
export const getResourceIcon = (type: any) => {
  // 首先根据resource.type判断资源类型
  switch (type) {
    case '1': // 视频
      return '视频'
    case '2': // 课件
      return '课件'
    case '3': // 虚拟仿真
      return '虚仿'
    case '4': // 镜像
      return '镜像'
    case '5': // 模型
      return '模型'
    default:
      return '其它'
  }
}

// 根据文件路径判断文件类型
export const getFileIconByPath = (path: string) => {
  if (!path) return 'unknown'

  // 获取文件扩展名
  const ext = path.split('.').pop()?.toLowerCase()

  // 从路径中提取资源类型标识
  const pathLower = path.toLowerCase()

  // 优先判断特殊资源类型
  if (pathLower.includes('/simulation/') || pathLower.includes('virtual')) {
    return 'simulation' // 虚拟仿真
  }
  if (pathLower.includes('/mirror/') || pathLower.includes('image.iso')) {
    return 'mirror' // 镜像文件
  }
  if (
    pathLower.includes('/model/') ||
    ['.obj', '.fbx', '.3ds', '.max', '.blend'].includes(`.${ext}`)
  ) {
    return 'model' // 3D模型
  }

  // 根据扩展名返回对应图标
  switch (ext) {
    // 视频文件
    case 'mp4':
    case 'avi':
    case 'mov':
    case 'wmv':
    case 'flv':
    case 'mkv':
    case 'm4v':
    case 'rmvb':
    case 'rm':
      return 'video'

    // 音频文件
    case 'mp3':
    case 'wav':
    case 'ogg':
    case 'aac':
    case 'wma':
    case 'flac':
    case 'm4a':
      return 'audio'

    // 图片文件
    case 'jpg':
    case 'jpeg':
    case 'png':
    case 'gif':
    case 'bmp':
    case 'webp':
    case 'svg':
    case 'ico':
      return 'image'

    // 文档文件
    case 'doc':
    case 'docx':
    case 'xls':
    case 'xlsx':
    case 'ppt':
    case 'pptx':
    case 'pdf':
    case 'txt':
    case 'word':
      return 'doc'

    // 压缩文件
    case 'zip':
    case 'rar':
    case '7z':
    case 'tar':
    case 'gz':
    case 'bz2':
      return 'zip'

    // 代码文件
    case 'js':
    case 'ts':
    case 'java':
    case 'py':
    case 'html':
    case 'css':
    case 'json':
    case 'xml':
    case 'php':
    case 'c':
    case 'cpp':
    case 'h':
      return 'code'

    // 课件文件
    case 'scorm':
    case 'aicc':
    case 'tincan':
    case 'cmi5':
      return 'courseware'

    // 虚拟仿真文件
    case 'unity3d':
    case 'uproject':
    case 'unitypackage':
      return 'simulation'

    // 镜像文件
    case 'iso':
    case 'img':
    case 'dmg':
      return 'mirror'

    // 3D模型文件
    case 'obj':
    case 'fbx':
    case '3ds':
    case 'max':
    case 'blend':
    case 'dae':
    case 'stl':
      return 'model'

    default:
      return 'unknown'
  }
}

// 获取文件类型描述
export const getFileTypeDesc = (type: string) => {
  switch (type) {
    case 'video':
      return '视频'
    case 'audio':
      return '音频'
    case 'image':
      return '图片'
    case 'doc':
      return '课件'
    case 'zip':
      return '压缩'
    case 'code':
      return '代码'
    case 'courseware':
      return '课件'
    case 'simulation':
      return '虚仿'
    case 'mirror':
      return '镜像'
    case 'model':
      return '模型'
    default:
      return '其他'
  }
}
